package com.shumi.rbac.service;

import java.util.Date;
import java.util.List;
import java.util.UUID;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.shumi.fun.Digests;
import com.shumi.fun.Encodes;
import com.shumi.rbac.mapper.UserMapper;
import com.shumi.rbac.model.Khlbxq;
import com.shumi.rbac.model.KhlbxqPojo;
import com.shumi.rbac.model.User;
import com.shumi.rbac.model.Yhxqxx;
import com.shumi.rbac.model.Khyhxx;


/**
 * Created by Administrator on 2017/10/27.
 */
@Transactional
@Service
@Slf4j
public class SystemService {

    public static final int HASH_INTERATIONS = 1024;

    @Autowired
    private UserMapper userMapper;

    /**
     * 根据登录名获取用户
     * @param loginName
     * @return
     */
    public User getUserByLoginName(String loginName) {
//        User user = userMapper.getByLoginName(loginName);
    	User user1=new User("",loginName);
        User user = userMapper.getByLoginName(user1);
        return user;
    }
    
    /**
     * 验证密码
     * @param plainPassword 明文密码
     * @param password 密文密码
     * @return 验证成功返回true
     */
    public static boolean validatePassword(String plainPassword, String password) {
        String plain = Encodes.unescapeHtml(plainPassword);
        byte[] salt = Encodes.decodeHex(password.substring(0,16));
        byte[] hashPassword = Digests.sha1(plain.getBytes(), salt, HASH_INTERATIONS);
        return password.equals(Encodes.encodeHex(salt)+Encodes.encodeHex(hashPassword));
    }
    
    
    /*public static  boolean YzPassword(String plainPassword, String password){
		return false;
    	
    }*/
    
    //未加密的登录方式
    public User getUserByLoginName1(String loginName) {
//      User user = userMapper.getByLoginName(loginName);
  	User user1=new User("",loginName);
      User user = userMapper.getByLoginName1(user1);
      return user;
  }
    
    
    /**
     * 显示考核督办——未督办所有用户列表
     * 
     */
    public List<Khyhxx> wdbFindAll(String userId){
    	//id="001";
		return userMapper.wdbFindAll(userId);  	
    };
    
    
    /**
     * 查询考核督办——未督办用户部分信息
     * 
     */
    public List<Khyhxx> wdbdetail(String id){
    	id="001";
		return userMapper.wdbdetail(id);
    	
    };
    
    /**
     * 插入考核督办-为督办用户信息操作
     */
    public int updateWdbyhxx(Khyhxx khyhxx,String userId){
    	khyhxx.setCwy("大河镇");
    	khyhxx.setJtzz("浙江省杭州市余杭区西湖");
    	khyhxx.setZgyq("下放整改测试5555");
    	Date date =new Date();
    	khyhxx.setClsj(date);
		return userMapper.updateWdbyhxx(khyhxx,userId);
    	
    }
    
    /**
     * 显示考核督办——已督办所有用户列表
     * 
     */
    public List<Khyhxx> ydbFindAll(String userId){
    	//id="001";
		return userMapper.ydbFindAll(userId);  	
    };
    
    
    /**
     * 查询考核督办——已督办用户部分信息
     * 
     */
    public List<Khyhxx> ydbdetail(String id){
    	id="001";
		return userMapper.ydbdetail(id);
    	
    };
    
    
    /**
	 * 插入用户抽查-用户详情信息操作
	 */
    
    public int insertYhxqxx(Yhxqxx yhxqxx){
    	String id = UUID.randomUUID().toString();
    	yhxqxx.setAddress("河南省郸城县郸城县第一高级中学");
    	Date ccsj=new Date();
    	yhxqxx.setCcsj(ccsj);
    	yhxqxx.setLxdh("12345679");
    	yhxqxx.setName("张三");
    	yhxqxx.setZfzt("否");
    	yhxqxx.setHlfl("好");
    	yhxqxx.setSsgl("很好");
    	yhxqxx.setJtcy("5");
    	yhxqxx.setTyws("一般");
    	yhxqxx.setSfkt("否");
    	yhxqxx.setWz("你什么难喝的吃烧烤");  	
		return userMapper.insertYhxqxx(id,yhxqxx);
    }
    
    /**
	 * 查询用户抽查-用户详情信息操作
	 */

    public List<Yhxqxx> yhdetail(String id,String userId){
    	id="001";
		return userMapper.yhdetail(id, userId);
    	
    }
    
    /**
	 * 查询用户抽查-用户排名（镇排名）信息操作
	 */

    public List<Yhxqxx> zpm(String userId){
    	//id="001";
		return userMapper.zpm(userId);
    	
    }
    
    /**
	 * 查询用户抽查-用户排名（村排名）信息操作
	 */

    public List<Yhxqxx> cpm(String userId){
    	//id="001";
		return userMapper.cpm(userId);
    	
    }
    
    /**
	 * 查询用户抽查-用户排名（住户排名）信息操作
	 */

    public List<Yhxqxx> zhpm(String userId){
    	//id="001";
		return userMapper.zhpm(userId);
    	
    }
    
    /**
	 * 按照镇名、村名、住户名搜索用户操作
	 */

    public List<Yhxqxx> search(String cxxx,String userId){
    	//cxxx="海淀";
    	cxxx="王五";
		return userMapper.search(cxxx,userId);
    	
    }
    
    /**
     * 查询考核列表展示
     * 
     */
    public List<KhlbxqPojo> khFindAll(String userId){
		return userMapper.khfindAll(userId); 	
    };
    
    
    /**
     * 查询考核列表-用户详情展示
     * 
     */
    public List<Khlbxq> khdetail(String id){
    	id="001";
		return userMapper.khdetail(id);
    	
    };
    
}
